/*
 * $Id$
 */
package corejs.stmt;

import corejs.rt.ActivationRecord;
import corejs.rt.Str;

import corejs.util.XmlPrinter;

/**
 *
 * @author myang
 */
public abstract class Statement {

   public void addTo(final Block current) {
      current.addStatement(this);
   }

   public void execute(final ActivationRecord scope) {
   }

   public void print(final XmlPrinter printer) {
   }

   /**
    * 
    * @param visitor 
    * @return true if the block is interrupted
    */
   public void accept(final StatementVisitor visitor) {
      throw new UnsupportedOperationException();
   }

   /**
    *
    * @param label
    */
   public void doBreak(final Str label) {
      throw new UnsupportedOperationException();
   }

   /**
    * 
    * @param label 
    */
   public void doContinue(final Str label) {
      throw new UnsupportedOperationException();
   }
}
